HSQLDB ডেটাবেসে ডেটা ইম্পোর্ট এবং এক্সপোর্টের জন্য বিভিন্ন ফরম্যাট ব্যবহার করা যেতে পারে, যেমন CSV, JSON, এবং XML। ডেটাবেসে ডেটা ইম্পোর্ট এবং এক্সপোর্ট করার মাধ্যমে, আপনি অন্য সিস্টেমে ডেটা স্থানান্তর করতে বা আপনার ডেটাবেসের ব্যাকআপ রাখতে পারেন। এই গাইডে আমরা CSV, JSON, এবং XML ফরম্যাটে ডেটা ইম্পোর্ট এবং এক্সপোর্ট করার পদ্ধতি আলোচনা করব।
1. CSV Data Import এবং Export
CSV (Comma-Separated Values) একটি সাধারণ টেক্সট ফরম্যাট যা ডেটাবেসে ডেটা স্থানান্তর করার জন্য ব্যাপকভাবে ব্যবহৃত হয়। HSQLDB সরাসরি CSV ফাইল ইম্পোর্ট এবং এক্সপোর্ট করার জন্য কিছু প্রক্রিয়া সমর্থন করে।
CSV Data Import (ইম্পোর্ট)
HSQLDB-তে CSV ফাইল থেকে ডেটা ইম্পোর্ট করতে SCRIPTS বা SQL COMANDS ব্যবহার করা যায়। এর জন্য সাধারণত READ কমান্ড ব্যবহার করা হয়।
CSV ফাইলের উদাহরণ:
id,name,email
1,John Doe,john.doe@example.com
2,Jane Smith,jane.smith@example.com
SQL কমান্ড (CSV ইম্পোর্ট):
READ CSV FILE 'path_to_file/customers.csv' INTO TABLE customers;
এটি customers.csv ফাইলের ডেটা customers টেবিলে ইম্পোর্ট করবে।
CSV Data Export (এক্সপোর্ট)
HSQLDB-তে CSV ফাইল এক্সপোর্ট করার জন্য WRITE কমান্ড ব্যবহার করা হয়। ডেটাবেসের তথ্য CSV ফাইলে রপ্তানি করা যেতে পারে।
SQL কমান্ড (CSV এক্সপোর্ট):
WRITE CSV FILE 'path_to_file/exported_customers.csv' FROM customers;
এটি customers টেবিলের সমস্ত ডেটা exported_customers.csv ফাইলে এক্সপোর্ট করবে।
2. JSON Data Import এবং Export
JSON (JavaScript Object Notation) একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা হিউম্যান রিডেবল এবং মেশিন রিডেবল। HSQLDB JSON ফাইল ইম্পোর্ট এবং এক্সপোর্টের জন্য কিছু অতিরিক্ত কাস্টম স্ক্রিপ্টিং সমর্থন করে।
JSON Data Import (ইম্পোর্ট)
HSQLDB-তে JSON ডেটা ইম্পোর্টের জন্য আপনাকে একটি কাস্টম স্ক্রিপ্ট বা API ব্যবহার করতে হতে পারে, কারণ HSQLDB সরাসরি JSON ফাইল ইম্পোর্ট করার জন্য বিল্ট-ইন ফিচার প্রদান করে না। তবে, আপনি Java কোড বা অন্য টুল ব্যবহার করে JSON ডেটা ডেটাবেসে ইনসার্ট করতে পারেন।
JSON ফাইলের উদাহরণ:
[
{"id": 1, "name": "John Doe", "email": "john.doe@example.com"},
{"id": 2, "name": "Jane Smith", "email": "jane.smith@example.com"}
]
Java কোড (JSON ডেটা ইম্পোর্ট):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.FileReader;
import org.json.JSONTokener;
public class ImportJsonData {
public static void main(String[] args) {
// Create session factory
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Customer.class).buildSessionFactory();
Session session = factory.getCurrentSession();
try {
// Parse JSON file
JSONArray jsonArray = new JSONArray(new JSONTokener(new FileReader("path_to_file/customers.json")));
// Start transaction
session.beginTransaction();
// Loop through JSON array and insert data
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
Customer tempCustomer = new Customer();
tempCustomer.setId(obj.getInt("id"));
tempCustomer.setName(obj.getString("name"));
tempCustomer.setEmail(obj.getString("email"));
session.save(tempCustomer);
}
session.getTransaction().commit();
} finally {
factory.close();
}
}
}
এই কোডটি customers.json ফাইল থেকে ডেটা পড়ে Customer টেবিলে ইনসার্ট করবে।
JSON Data Export (এক্সপোর্ট)
JSON ফাইল এক্সপোর্ট করার জন্য আপনাকে Java বা অন্য টুল ব্যবহার করতে হবে, যেহেতু HSQLDB সরাসরি JSON এক্সপোর্ট সমর্থন করে না। আপনি Hibernate বা JDBC ব্যবহার করে ডেটা রিট্রিভ করতে পারেন এবং তারপর JSON ফরম্যাটে রূপান্তরিত করতে পারেন।
Java কোড (JSON ডেটা এক্সপোর্ট):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.FileWriter;
import java.util.List;
public class ExportJsonData {
public static void main(String[] args) {
// Create session factory
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Customer.class).buildSessionFactory();
Session session = factory.getCurrentSession();
try {
// Start transaction
session.beginTransaction();
// Retrieve customers from database
List<Customer> customers = session.createQuery("from Customer").getResultList();
// Prepare JSON array
JSONArray jsonArray = new JSONArray();
for (Customer customer : customers) {
JSONObject obj = new JSONObject();
obj.put("id", customer.getId());
obj.put("name", customer.getName());
obj.put("email", customer.getEmail());
jsonArray.put(obj);
}
// Write JSON data to file
try (FileWriter file = new FileWriter("path_to_file/exported_customers.json")) {
file.write(jsonArray.toString());
}
session.getTransaction().commit();
} finally {
factory.close();
}
}
}
এই কোডটি Customer টেবিল থেকে ডেটা নিয়ে একটি JSON ফাইলে রপ্তানি করবে।
3. XML Data Import এবং Export
XML (Extensible Markup Language) একটি সাধারণ এবং প্রাচীন ডেটা বিনিময় ফরম্যাট যা ডেটার কাঠামো স্পষ্টভাবে ব্যাখ্যা করে। HSQLDB XML ফাইল ইম্পোর্ট এবং এক্সপোর্টের জন্য অতিরিক্ত কাস্টম কোড ব্যবহার করা যেতে পারে।
XML Data Import (ইম্পোর্ট)
XML ফাইল থেকে ডেটা ইম্পোর্ট করতে আপনাকে Java বা অন্য টুল ব্যবহার করতে হতে পারে, কারণ HSQLDB সরাসরি XML ইম্পোর্ট সমর্থন করে না। Java XML লাইব্রেরি ব্যবহার করে আপনি XML ডেটা ডেটাবেসে ইনসার্ট করতে পারেন।
XML ফাইলের উদাহরণ:
<customers>
<customer>
<id>1</id>
<name>John Doe</name>
<email>john.doe@example.com</email>
</customer>
<customer>
<id>2</id>
<name>Jane Smith</name>
<email>jane.smith@example.com</email>
</customer>
</customers>
Java কোড (XML ডেটা ইম্পোর্ট):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
import java.io.File;
public class ImportXmlData {
public static void main(String[] args) {
// Create session factory
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Customer.class).buildSessionFactory();
Session session = factory.getCurrentSession();
try {
// Parse XML file
File xmlFile = new File("path_to_file/customers.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("customer");
// Start transaction
session.beginTransaction();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
Customer tempCustomer = new Customer();
tempCustomer.setId(Integer.parseInt(element.getElementsByTagName("id").item(0).getTextContent()));
tempCustomer.setName(element.getElementsByTagName("name").item(0).getTextContent());
tempCustomer.setEmail(element.getElementsByTagName("email").item(0).getTextContent());
session.save(tempCustomer);
}
}
session.getTransaction().commit();
} finally {
factory.close();
}
}
}
XML Data Export (এক্সপোর্ট)
XML ফাইল এক্সপোর্ট করতে আপনাকে Java কোড ব্যবহার করতে
হবে, যেখানে ডেটাবেসের ডেটা XML ফরম্যাটে রূপান্তরিত করা হবে।
Java কোড (XML ডেটা এক্সপোর্ট):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.io.FileWriter;
import java.util.List;
public class ExportXmlData {
public static void main(String[] args) {
// Create session factory
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Customer.class).buildSessionFactory();
Session session = factory.getCurrentSession();
try {
// Retrieve customers from database
session.beginTransaction();
List<Customer> customers = session.createQuery("from Customer").getResultList();
// Prepare XML document
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("customers");
doc.appendChild(rootElement);
for (Customer customer : customers) {
Element customerElement = doc.createElement("customer");
rootElement.appendChild(customerElement);
Element idElement = doc.createElement("id");
idElement.appendChild(doc.createTextNode(String.valueOf(customer.getId())));
customerElement.appendChild(idElement);
Element nameElement = doc.createElement("name");
nameElement.appendChild(doc.createTextNode(customer.getName()));
customerElement.appendChild(nameElement);
Element emailElement = doc.createElement("email");
emailElement.appendChild(doc.createTextNode(customer.getEmail()));
customerElement.appendChild(emailElement);
}
// Write XML to file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("path_to_file/exported_customers.xml"));
transformer.transform(source, result);
session.getTransaction().commit();
} finally {
factory.close();
}
}
}
সারাংশ
- CSV, JSON, এবং XML ফরম্যাটে ডেটা ইম্পোর্ট এবং এক্সপোর্ট করার জন্য আপনাকে Java ব্যবহার করতে হতে পারে, কারণ HSQLDB সরাসরি এই ফরম্যাটগুলির জন্য বিল্ট-ইন কমান্ড প্রদান করে না।
- Java কোড ব্যবহার করে আপনি ডেটা রূপান্তর এবং এক্সপোর্ট/ইম্পোর্ট প্রক্রিয়া সম্পন্ন করতে পারেন।
- Hibernate বা JDBC ব্যবহার করে ডেটাবেসে ডেটা রিট্রিভ এবং ফরম্যাট অনুযায়ী ডেটা এক্সপোর্ট বা ইম্পোর্ট করা যায়।
এই প্রক্রিয়া আপনাকে HSQLDB থেকে CSV, JSON, বা XML ফরম্যাটে ডেটা ম্যানিপুলেট করতে সাহায্য করবে।
Read more